/*
 * Clase.h
 *
 *  Created on: Oct 29, 2012
 *      Author: Carlos Alegría Galicia
 */

#ifndef PRUEBA_H_
#define PRUEBA_H_

/**
 * Namespace para el código del curso
 */
namespace poo

// Un namespace especifica un alcance en el cual se pueden definir
// identificadores y variables, con el objetivo de evitar colisiones de nombres.
//
// Para acceder a los miembros de un namespace, se utiliza el operador
// de resolución de alcance "::", como en
// <code>espacio_de_nombre::miembro</code>.
//
// Si el namespace especificado no existe, el compilador lo crea. En caso
// contrario, todos los identificadores y variables definidas dentro de las
// llaves son agregados al namespace especificado.

{

  /**
   * Primera clase en C++
   *
   * Esta clase contiene los elementos básicos de una clase de C++:
   * atributos, métodos (un constructor y un destructor), y especificadores de
   * acceso (<code>public</code> y <code>private</code>) para sus miembros.
   */
  class Clase1
  {
  public:

    /**
     * Constructor de la clase
     *
     * Al constructor que no recibe argumentos normalmente se le conoce como
     * constructor por default. Este nombre se debe a que, si en la definición
     * de una clase no se especifica ningún constructor, el compilador de C++
     * genera un constructor sin argumentos por default.
     */
    Clase1();

    /**
     * Destructor de la clase
     *
     * Un destructor no recibe ningún argumento.
     */
    ~Clase1();

  private:

    int atributo1; /**< Primer atributo privado */
    int atributo2; /**< Segundo atributo privado */
  };
}

#endif /* PRUEBA_H_ */
